在這裡我們要將訓練集替換成中文,但是原本資料集的資料夾格式如下:
tf.keras.preprocessing.text_dataset_from_directory
aclImdb_v1.tar.gz
而中文旅館評論是一個單檔的 csv,並使用 label 表示正負向
label,review
1,"距离川沙公路较近,但是公交指示不对,如果是""蔡陆线""的话,会非常麻烦.建议用别的路线.房间较为简单."
1,商务大床房,房间很大,床有2M宽,整体感觉经济实惠不错!
1,早餐太差,无论去多少人,那边也不加食品的。酒店应该重视一下这个问题了。房间本身很好。
1,宾馆在小街道上,不大好找,但还好北京热心同胞很多~宾馆设施跟介绍的差不多,房间很小,确实挺小,但加上低价位因素,还是无超所值的;环境不错,就在小胡同内,安静整洁,暖气好足-_-||。。。呵还有一大优势就是从宾馆出发,步行不到十分钟就可以到梅兰芳故居等等,京味小胡同,北海距离好近呢。总之,不错。推荐给节约消费的自助游朋友~比较划算,附近特色小吃很多~
1,"CBD中心,周围没什么店铺,说5星有点勉强.不知道为什么卫生间没有电吹风"
這裡使用 pandas 讀取 csv,洗牌後將 80% 的分給 train_df,20% 分給 test_df。
之後根據 label 的值,把 label 1 寫入至 pos,label 0 寫入至 neg。
import pandas as pd
import os
all_df = pd.read_csv("ChnSentiCorp_htl_all.csv")
shuffled = all_df.sample(frac=1).reset_index(drop=True)
train_df = shuffled.iloc[:int(len(shuffled)*0.8)]
test_df = shuffled.iloc[int(len(shuffled)*0.8):]
mypaths = ["chinese/train/neg", "chinese/train/pos", "chinese/test/neg", "chinese/test/pos"]
for i in mypaths:
os.makedirs(i, exist_ok=True)
for i, row in train_df.iterrows():
if row["label"] == 1:
with open("chinese/train/pos/" + str(i) + ".txt", "w", encoding="UTF-8") as f:
f.write(str(row["review"]))
if row["label"] == 0:
with open("chinese/train/neg/" + str(i) + ".txt", "w", encoding="UTF-8") as f:
f.write(str(row["review"]))
for i, row in test_df.iterrows():
if row["label"] == 1:
with open("chinese/test/pos/" + str(i) + ".txt", "w", encoding="UTF-8") as f:
f.write(str(row["review"]))
if row["label"] == 0:
with open("chinese/test/neg/" + str(i) + ".txt", "w", encoding="UTF-8") as f:
f.write(str(row["review"]))
結果如下